Jak każde plemię, programiści Java / JVM mają swoje przekonania i wierzenia. Ale i totemy. Całe mnóstwo totemów, które bałwochwalą.'Nie dbam o pamięć. Mam GC po mojej stronie'. Nadszedł najwyżyszy czas obalić te fałszywe przekonania. W czwartej (lub piątej) części 'JVM dla ciekawskich i przygnębionych' zajmiemy się tym, jak JVM radzi sobie z pamięcią. Dowiemy się, że sterta nie jest jedynym miejscem, gdzie coś może pójść nie tak.Prezentacja oparta jest na prawdziwych wydarzeniach. Dla Twojego dobra zmieniłem nazwy procesów i klas. To podsumowanie 2-miesięcznego pościgu za błędem `os :: commit_memory`, który doprowadził prowadzącego na skraj rozpaczy i utraty wiary w siebie.Najpierw porozmawiamy trochę o pamięci, alokacji i systemie operacyjnym. Następnie zaglądniemy w głąb JVM, by zrozumieć jak zarządza pamięcią (nie tylko na stercie). Na końcu przyjrzymy się bliżej narzędziom i technikom, które pomogą nam zrozumieć, dlaczego JVM może przydzielić więcej niż -Xmx i co zrobić, gdy sprawy wymkną się spod kontroli.
Jarosław Pałka Performance Engineer, Neo4j
Od ponad 20 lat w branży IT, jako administrator baz danych, programista, architekt, manager i „inżynier od spraw katastrof”. Brałem udział w małych, średnich i nonsensownie dużych projektach, prowadzonych zgodnie zasadami „waterfall”, Agile oraz przy braku jakichkolwiek metodyk, z tym samym zawsze skutkiem. Co doprowadziło mnie do wniosku, że nie ważne co robisz tak długo, jak robisz to dobrze, w najprostszy z możliwych sposobów i używasz właściwych narzędzi które wykonają pracę za ciebie. W międzyczasie dałem się porwać ideom TDD oraz Software Craftmanship, do granic możliwości wyeksploatować tak piękne w swej prostocie pomysły jak REST i NoSQL, by potem porzucić je by zgłębić tajniki „system thinking” i zachwycić się siłą jaką niesie z sobą „metafora” i odkryć, że rządzą nami te same prawa „natury”. Niepokorny wyznawca kościoła JVM, badacz bytecode'u i JIT oraz wszelkiej maści parserów, interpreterów i kompilatorów. Od czasu do czasu można usłyszeć moje niskiej jakości żarty na temat architektury na konferencjach w Polsce. W chwilach trener w http://symentis.pl i autor bloga na http://geekyprimitives.wordpress.com/ oraz samozwańczy dyktator w radach programowych konferencji JDD oraz 4Developers.
Kiedy po raz ostatni uruchamiałaś kod produkcyjny na jednordzeniowym procesorze? A kiedy była to prawdziwa aplikacja jednowątkowa? Od wątków które działają w naszych aplikacjach ogradzamy się warstwami abstrakcji, która obiecują zając się wszystkimi skomplikowanymi sprawami. Niestety żeby zrozumieć jak działa aplikacja, nie sposób pominąć to z jakiego modelu wątków korzysta.
Chciałbym, żeby ta prelekcja była powrotem do podstaw. Skąd biorą się wątki w JVM? Ile kosztuje każdy z nich? Dlaczego tworzymy pule wątków i jak z nich dobrze korzystać? I w końcu: ile wątków znajduje się w typowej aplikacji webowej i czym się zajmują? Odpowiedzi na te pytania znajdziesz w trakcie tej prezentacji.
Adam Dubiel building stuff @ allegro, Allegro
Developer, team manager, product owner, od pewnego czasu też architekt. Mimo, że spis stanowisk wygląda bardziej jak ścieżka kariery, stara się znaleźć czas na każdą z tych ról (chociaż developer już raczej weekendowy). Największą satysfakcję daje mu udane wdrożenie aplikacji, która po prostu działa i zadowolenie klientów.
W ciągu ostatnich kilkunastu miesięcy sporo wydarzyło się w świecie zaawansowanej analityki. Podczas tej sesji postaram się dokonać subiektywnego podsumowania prac i projektów, którym przewodzi lub uczestniczy Google: od zmian i nowości związanych z biblioteką TensorFlow, przez styk uczenia maszynowego i big data, aż po kompleksowe środowiska do automatyzacji pracy zespołów data science, takie jak Kubeflow. Wszystko oczywiście przez pryzmat chmur - publicznej, prywatnej i hybrydowej.
Michał Żyliński Customer Engineer, Google
Michał pracuje w Google jako architekt rozwiązań, pomagając klientom i partnerom w optymalny sposób wykorzystać możliwości, które daje chmura. Jego pasją są dane i ich wpływ na procesy biznesowe i społeczne. Ostatnie kilka lat spędził jako doradca w projektach na styku big data, uczenia maszynowego i data science.
Podczas tej prezentacji zbudujemy, wykorzystując jedynie usługi typu serverless, aplikacje opartą o kilka regionów AWS – aplikacja będzie uruchomiona zarówno w serwerowniach w Europie jak i w serwerowniach w USA. Aplikacja ta, będzie automatycznie synchronizowała dane pomiędzy tymi lokalizacjami oraz, analogicznie do Netflixa będzie potrafiła automatycznie przekierować użytkownika do najbliższego regionu i w przypadku niedostępności jednego z nich, będzie automatycznie wykrywała taki fakt i zapobiegała niedostępności samej aplikacji. Wszystko to zbudujemy od zera w ciągu jednej godziny i to wszystko bez użycia żadnego serwera!
Tomasz Stachlewski Principal Solutions Architect, Amazon Web Services
Główny architekt systemów chmurowych w Amazon Web Services w Polsce. Na co dzień doradza klientom w tworzeniu architektur systemów, które mają zostać zmigrowane lub utworzone w chmurze AWS i w pełni wykorzystywać możliwości jakie niesie ze sobą chmura. Doradza wielu wiodącym firmom (począwszy od startupów po korporacje) z różnych branż tj. IT, telekomunikacja, finanse i inne. Prowadzi szkolenia dla polskich i zagranicznych partnerów podczas których przekazuje w jaki sposób firmy powinny korzystać z chmury, jak powinna wyglądać ich droga z tradycyjnej infrastruktury do infrastruktury chmurowej, aby zmaksymalizować korzyści z tego płynące.
Podczas prezentacji przedstawiony zostanie przekrój narzędzi AI/ML jakie dostępne są dla programistów pracujących w technologiach Microsoft. Omówione zostaną usługi chmurowe dostępne w Azure, biblioteki programistyczne i środowisko dla data-scientists.
Paweł Klimczyk , Gemotial
Paweł jest programistą i architektem rozwiązań IT w technologiach Microsoft. Związany profesjonalnie z branżą IT od 10 lat. Badacz jakości i utrzymania oprogramowania. Microsoft MVP od 2017.
Członek stowarzyszeń PTI, MENSA i ITCorner. Współorganizator wrocławskiej grupy WrocNET oraz cyklu spotkań geekweekwro.pl. Prelegent i szkoleniowiec. Czyta 60 książek rocznie.
Prowadzi firme programistyczną Gemotial, gdzie skupia się na aktywowaniu potencjału programistów przez wspólne rozwiązywanie nieszablonowych problemów biznesowych.
Ma swojego bloga pod adresem https://blog.klimczyk.pl i tweetuje jako @pwlklm
Wszyscy wiedzą czym jest Serverless, sporo firm korzysta już dziś z Azure Functions, ale mało kto używa Durable Functions w projektach. W czasie pokażemy czym są funkcje Durable, jak ich używać i jak za ich pomocą budować długotrwałe procesy, które rozumieją stan w Microsoft Azure. Będzie trochę teorii , kod w C# i praktyczne zastosowanie.
Michał Furmankiewicz Head of Consulting, Chmurowisko
Michał pracuje jako Head of Consulting w Chmurowisku i odpowiada za cały consulting w ramach projektów doradczych, szkoleniowych i wdrożeniowych. Przez 11 lat pracował w Microsoft, gdzie ostatnie 4 poświęcił tylko i wyłącznie rozwiązaniom Chmurowym piastując rolę Architekta Rozwiązań Chmurowych dla wielu firm w Polsce. Stara się rozumieć biznesowe aspekty technologii i szukać motywacji, które pozwalają uruchamiać duże projekty migracyjne czy innowacyjne. Lubi nowe technologie i stara się je wykorzystać w realnym biznesie. Chmurę postrzega jako narzędzie, które może pomóc w transformacji firmy. W wolnym czasie występuje na konferencjach, meetupach lub pisze na blogu cloudarchitects.pl. Kiedy czasu jest naprawdę dużo, zakłada słuchawki i bawi się technologią w ramach rozrywki umysłowej. Tylko dla siebie i dla zabawy
Testy jednostkowe są tanie i powinno ich być najwięcej. Wiele osób uważa testy jednostkowe za zbędne, ponieważ napatrzyło się na złe testy, które zamiast budować pewność wprowadzają koszty utrzymania. Jednak dobrze napisane testy jednostkowe pomagają sprawdzić wszystkie ścieżki i unikać regresji w kodzie biznesowym. Pokażę kilka ciekawostek i omówię kilka kontrowersyjnych tematów, nad którymi każdy junior i mid powinien się zastanowić.
Aleksandra Kunysz Software Engineer, Tipser
Ola Kunysz tworzy oprogramowanie od ponad 12 lat. Pisała frontendy, backendy i kod biznesowy, zbierała wymagania, testowała i szkoliła. Pracowała w korporacjach, startupach i pro bono w różnych branżach i krajach. Najbardziej lubi pisać kod, który ma znaczenie i rozwiązywać prawdziwe problemy. Kiedy jest offline, jeździ na rowerze, spaceruje z psem, albo ćwiczy jogę z kotami.
I would like to share best practices I have observed in my work with Kubernetes, CloudNative, and micro-services-based architecture as a software developer, system engineer, and team leader. The idea is to show what did work and what did not.
Wojciech Barczyński Head of Engineering, Hypatos.ai and SMACC.io
Wojciech Barczynski is Head of Engineering in Hypatos.ai and SMACC.io. The sibling Fintech Machine Learning Startups build a sophisticated FinTech/AI automation as an API and deliver it as a easy to use SaaS (SMACC.io). Developer and System Engineer. In both companies, he led transformation to micro-services on top of Kubernetes (onPrem and onCloud) and CloudNative. Before system engineer in LykeHQ, a Rocket-Internet venture, a fashion ecommerce in Indonesia. His first experience with large distrubuted systems, he gained in Cloud&Heat. He started his career in SAP Reseach. Golang Warsaw Organizer.
Pierwsza, druga i trzecia postać normalna w bazach danych zapewne obiła Ci się o uszy. A co powiesz o szóstej?
Pokażę Ci jak wykorzystać bardzo wysoki poziom normalizacji do modelowania danych tak, by schema mogła być rozwijana i zmieniana w dowolnej chwili bez wpływu na istniejące aplikacje korzystające z Twoich danych za pomocą techniki znanej jako Anchor Modeling.
Ten sposób modelowania zahacza mocno o świat hurtowni danych i wymaga sporo dyscypliny, bywa jednak, że jego wykorzystanie rozwiązuje sporo problemów, a sam proces nie jest wcale taki trudny jak może Ci się wydawać.
Na tej prezentacji dowiesz się czym jest szósta postać normalna i jak Anchor Modeling wykorzystuje ją by pomóc tworzyć modele iteracyjnie, a przy tym nie wpaść w jakieś większe dołki wydajności.
Rafał Hryniewski .NET Dev, Billennium
Na co dzień pracuję jako .NET Developer w Billennium. Oprócz tego zajmuję się chmurą, bazami danych i wszystkim co nowe i ciekawe. Jestem jednym z liderów Białostockiej Grupy .NET, Microsoft Azure User Group Poland w Białymstoku i jednym z organizatorów konferencji Programistok. Bywam też na przeróżnych spotkaniach w Polsce jako prelegent. Od czasu do czasu bloguję, a w wolnych chwilach sięgam po książki i komiksy lub zamieniam się w szalonego kucharza amatora.
Czy AWS, Azure i GCP powinni siębać Alibaby (i czterdziestu rozbójników)? Podczas prezentacji pokaże chińskiego potentata chmury publicznej. Powiem czy ma ona szansę konkurować z największymi graczami na rynku oraz w jakich aspektach Alibaba ma nad nimi przewagę. Zobaczymy też co wspólnego ma Alibaba Cloud z telefonami firmy Xiaomi.
Piotr Kalinowski Cloud Architect, Chmurowisko
Od początku mojej kariery w IT głównie zajmuję się obszarami Big Data. W Chmurowisku pełnię rolę Cloud Architecta, gdzie zajmuję się architekturą oraz wytwarzaniem oprogramowania, w szczególności rozwiązani z zakresu ML/AI w chmurze publicznej. Przede wszystkim w Amazon Web Services, Microsoft Azure, ale czasem też w Alibaba Cloud. W wolnej chwili prowadzę bloga http://sciezkaprogramisty.pl/
Podejście Domain-Driven Design służące do radzenia sobie ze skomplikowanymi wymaganiami i regułami biznesowymi zaproponowane przez Erica Evans'a w 2004 roku przechodzi renesans. Powodem tego jest rozwój technologiczny w postaci nowoczesnych platform i bibliotek, popularyzacja architektury wielousługowej i stylów architektonicznych takich jak CQRS ale przede wszystkim - co raz większe wyzwania stawiane przed oprogramowaniem.
Architekci i programiści co raz częściej sięgają po wzorce strategiczne i taktyczne DDD z nadzieją, że pomoże im to poradzić sobie ze złożonością ich systemów. Niestety, nawet przy dobrze dobranej strategii nasze podejście może skończyć się niepowodzeniem gdy nieumiejętnie implementujemy Model Domenowy.
Na prezentacji omówimy na przykładach w języku C# jak przy użyciu taktyk DDD zaimplementować "czysty" Model Domenowy, który jest adaptacyjny do potrzeb biznesowych i zarazem jest w stanie udźwignąć wysoką złożoność. Taka implementacja nie jest łatwa, ale na szczęście mamy do dyspozycji arsenał praktyk, zasad i paradygmatów programowania obiektowego, które posłużą nam do osiągnięcia tego celu.
Omówimy m. in. najważniejsze atrybuty Modelu Domenowego takie jak nazewnictwo, enkapsulacja czy niezależność od infrastruktury. Rozpatrzymy zasady dotyczące Agregatów - ich granicy, persystencji, walidacji. Pozbędziemy się "obsesji prymitywnych typów", która nijak się ma do języka biznesu. Otoczymy nasz Model Domenowy odpowiednią architekturą, która nie tylko nie będzie przeszkadzać w jego rozwoju, ale będzie ten rozwój wspierać. To wszystko nie mogło by się odbyć bez testów jednostkowych, których użycie jest koniecznością przy systemach, które mają być gotowe na zmianę. Wszystko w ramach DDD zgodnie z zasadami czystego kodu jak na "rzemieślników oprogramowania" przystało. Challenge accepted!
Kamil Grzybek Software Architect, ITSG Global
Architekt, Team Leader oraz programista związany z technologią .NET od ponad 11 lat. Absolwent Politechniki Warszawskiej i kierunku Informatyka o specjalizacji Inżynieria Oprogramowania. Zwolennik podejścia Software Craftsmanship, Agile, automatyzacji, Czystego Kodu oraz pragmatycznego rozwiązywania problemów zgodnie z ich klasą. Pasjonat tematów związanych z architekturą oprogramowania i projektowaniem systemów. Entuzjasta i praktyk Domain-Driven Design. Przemyślenia dotyczące wytwarzania oprogramowania opisuje na swoim blogu http://www.kamilgrzybek.com i Twitterze: @kamgrzybek. Związany z firmą ITSG Global, gdzie jako architekt, programista i konsultant odpowiedzialny jest za wytwarzanie oprogramowania dla firm z branży finansowej, medycznej i Big Data. Prywatnie - mąż, tata ukochanej córeczki, opiekun niesfornego psa, biegacz - amator i pasjonat samodoskonalenia żyjący zgodnie z Sokratesową dewizą - "wiem, że nic wiem".
I will give an introduction to quantum computing, its theoretical foundations and possible applications, especially in machine learning and in solving combinatorial optimization problems. I will explain the difference between classical and quantum computers, as well as between universal and adiabatic quantum computers. Then, I will present some popular algorithms for quantum computers (such as Shor's algorithm, Grover's algorithm, quantum annealing), tell about their possible applications (especially in AI and transport) and current possibilities to implement programs which can be run on real quantum computers or their simulators. I will also summarize the recent progress in building quantum computers and quantum algorithms, present some forecasts for the future development of this interesting area and major obstacles on the road toward quantum supremacy. Finally, I will share my experience in building quantum computing awareness and quantum computing community in Warsaw, e.g., about 'Quantum AI' and 'Warsaw Quantum Computing Group' which I founded and I lead.
Paweł Gora Naukowiec, Uniwersytet Warszawski, Wydział Matematyki, Informatyki i Mechaniki
Naukowiec na Wydziale Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego, tam też ukończył studia magisterskie z matematyki i informatyki, a obecnie przygotowuje pracę doktorską. Interesuje się nowymi technologiami (np. sztuczna inteligencja, informatyka kwantowa) oraz ich zastosowaniami w różnych dziedzinach, m.in. w transporcie, medycynie i e-commerce. Jest m.in. twórcą i liderem grupy badawczej TensorCell oraz twórcą programu do symulacji i analizy ruchu drogowego Traffic Simulation Framework. Autor wielu prac naukowych publikowanych na najlepszych konferencjach informatycznych i transportowych, prezentował wyniki swoich badań w czołowych instytutach badawczych (np. MIT, University of Cambridge, Stanford Research Institute, ETH Zurich, University of Toronto, Google Zurich). Jego prace było wielokrotnie cytowane i nagradzane, m.in. nagrodami "LIDER ITS" w 2015 i 2017 roku za najlepszą w Polsce pracę badawczo-rozwojową w obszarze inteligentnych systemów transportowych, "Doktoraty dla Mazowsza", "Nowoczesny Uniwersytet", w 2017 roku został wyróżniony w gronie 10 "TOP POLISH TALENTS" w konkursie "MIT Innovator Under 35" oraz znalazł się na liście "New Europe 100" w gronie 100 wybitnych innowatorów w Europie Wschodniej. W przeszłości pracował jako inżynier i naukowiec m.in. w Microsoft, Google, CERN i IBM Research, obecnie współpracuje jako mentor i konsultant z wieloma startupami i firmami w Polsce. Jest przedstawicielem Polski w Komitecie Zarządzającym akcji COST WISE-ACT dotyczącej badania wpływu w dużej skali pojazdów autonomicznych i komunikujących się. Współorganizuje cykl spotkań Warsaw.ai oraz Warsaw Quantum Computing Group, prowadzi również grupę "Quantum AI". Brał udział w pracach nad zaleceniami do polskiej strategii AI, jest również liderem podgrupy ds. transportu, logistyki i pojazdów autonomicznych w ramach Grupy ds. IoT przy Ministerstwie Cyfryzacji oraz członkiem Rady ds. Cyfryzacji.
Gdy patrzymy na świat, nasz mózg natychmiast zamienia postrzegane przez nas obrazy w informacje, intuicję i odczucia. Czyni to z ogromnym wysiłkiem obliczeniowym, wykorzystując olbrzymią sieć z niezbadaną dotąd architekturą. Nie jesteśmy nawet bliscy stworzenia maszyny o porównywalnych możliwościach, ale krok po kroku, usprawniając zarówno sprzęt, jak i podejście algorytmiczne, sprawiamy, że maszyny coraz lepiej rozumieją obrazy, które widzą. Ten wykład będzie właśnie o tym, jak to działa. Przejdziemy od podstaw działania konwolucyjnych sieci neuronowych, poprzez zaawansowane, praktyczne wskazówki, aż po zastosowanie najnowocześniejszych architektur w praktyce. Zobaczysz przykłady, jak szalenie skomplikowane problemy można rozwiązać za pomocą komputera przenośnego. W międzyczasie zrozumiesz, co się dzieje, dlaczego nowe warstwy są dodawane, dlaczego wprowadzane są nowe koncepcje. Będzie pięknie! Zapraszam.
W ciągu kilkuletniej pracy w Intelu, każdy projekt, z którym miałem doczynienia sprowadzał się do jednego – sprawienie, żeby sprzęt wykonywał nasze polecenia w odpowiedni sposób. Zazwyczaj implementacją naszej woli były rózne sterowniki lub fragmenty kodu wykonywane z poziomu jądra systemu operacyjnego – jest to rozwiązanie poprawne, przetestowane i dla niektórych zastosowań, jedyne możliwe. A co z alternatywami? Niektóre rodzaje urządzeń (lub niektóre zadania, do których są one używane) nie osiągają pełnej wydajności, podczas gdy kod wykorzystujący je pracuje w przestrzeni użytkownika i musi komunikować się z jądrem poprzez wywołania funkcji systemowych. Podobnie, niektórzy programiści są przerażeni, w momencie, kiedy wytworzenie sterownika do urządzenia wymaga wiedzy, która może zostać określona jako tajemna, bez możliwości wykorzystania standardowych narzędzi i ograniczeniami zwiazanymi z wykorzystywanym językiem. W trakcie prezentacji pokażę, jakie są wady i zalety obu podejść, kiedy podejścia alternatywne są możliwe i jakie są ich zalety, nie tylko ze względu na wydajność działania produktu, ale także jego wytwarzania i ewentualnego utrzymania.
Łukasz Daniluk Software Engineer, Intel
"Pracuję w Intelu już od kilku lat przy różnych projektach – zaczynając od biblioteki OpenCL, poprzez rozwój oprogramowania i łatek na kernel dla procesorów serwerowych, kończąc na tworzeniu sterowników i bibliotek dla niezwykłych urządzeń sieciowych. Jestem trenerem wewnętrznych szkoleń wprowadzających w tematykę programowania równoległego i wektoryzacji oraz poświęconych pułapkom C++. Poza programowaniem w pracy lubię sobie poprogramować po pracy czy pograć w gry, ale przedewszystkim przejść się na długi spacer z moim samojedem Ragnarem."
Jako programiści Embedded jesteśmy przyzwyczajeni do pisania małych programów nie wymagających skomplikowanej architektury i skupiających się głównie na obsłudze sprzętu. Nie musimy w nich aż tak martwić się o czytelność kodu, automatyzację testów, czy komunikację w zespole. Jednak w ostatnich latach możliwości mikrokontrolerów zdecydowanie wzrosły, a wraz z nimi złożoność systemów. Nasze podejście do prowadzenia projektów niestety nie nadąża za tymi zmianami. Raczej nie rozmawiamy o architekturze czy jakości kodu. Nadzieję pokładamy w nowych procesorach, C++, czy Ruscie. Programiści standardowych systemów od dawna szukają sposobów na opanowanie rosnącej złożoności oprogramowania. W tej prezentacji pokażę, czego możemy się od nich nauczyć.
Maciej Gajdzica , Solwit
Programista systemów embedded z siedmioletnim doświadczeniem. Pracuje w firmie Solwit, gdzie specjalizuje się w systemach safety-critical. Pracował między innymi nad systemami kolejowymi, medycznymi i samochodowymi. Propagator dobrych praktyk w branży embedded, która raczej opiera się nowościom. W wolnych chwilach prowadzi bloga http://ucgosu.pl/
Chmura, Kubernetes, Cloud Native, DevOps 2.0, Serverless czy Machine Learning, a nawet SPA. Znasz te pojęcia? Na pewno. Wiesz co znaczą? Tak! Używasz ich? Większość z Was powie - niestety nie. Ale Ty chciałbyś, prawda? Może wydać Ci się to dziwne, ale w FinAi używamy wszystkich tych buzzwords na co dzień. W najbardziej konserwatywnej branży - czyli bankowości - musisz zapewnić wysoki standard. Okazuje się, że nie są to proste narzędzia gdzie „włączasz i jedziesz”. Opowiemy co zrobiliśmy nie tak. Szczególnie, że parę razy było naprawdę ciężko, gdy zrobiliśmy coś bez dokładnego zrozumienia tematu . Na przykład jak prosta pomyłka spowodowała 1.5 miesiąca przepisywania serwisu. Albo jedno ogłoszenie na konferencji spowodowało u nas zwrot o 360 stopni w ciągu 2 tygodni (robiliśmy A, potem usuwaliśmy A, a na końcu okazało się, że A jest najlepsze więc znów wróciliśmy do A). W tej sesji usłyszysz jak zmienił się nasz świat z punktu widzenia dewelopera. Jak inżynierskie podejście uratowało nam tyłek, ponieważ w epoce gdzie rządzą buzzwords – właśnie takie podejście jest najważniejsze. Bez zrozumienia "wnętrza" ciężko korzystać z narzędzi nowej epoki.
Piotr Stapp Software Architect, FinAI
Programista, inżynier, rzemieślnik, projektant i rowerzysta.Korzysta z każdej technologii, która prowadzi do celu.Wierzy w ludzi, a nie w papiery. Jest wyznawcą DevOps i wszelkiej automatyzacji.Jak przystało na człowieka inteligentnego, prowadzi bloga – https://stapp.space/Od czerwca 2018 znany jako "główny" dotnetomaniak.Na codzień główny architekt w FinAi oraz Microsoft MVP.
Żyjemy w interesujących czasach. Ludzie mówią, że to jak dotychczas działały aplikacje webowe, to przeszłość. Przyszłość jest świetlana i asynchroniczna. Świetlana i oparta o pętle zdarzeń. Świetlana i reaktywna.Ludzie oceniają: to nie jest asynchroniczne, nie jest reaktywne, nie jest napisane w nodejs - to nie ma przyszłości. Jednak świat nie jest albo synchroniczny albo asynchroniczny. Nie jest czarno-biały. Jest szary, zamglony, grząski i pełen niespodzianek. Podczas tej prezentacji spróbujemy spenetrować niektóre z tych odcieni szarości.W trakcie prezentacji spróbujemy wyrobić sobie zdanie czy 'zrobienie wszystkiego reaktywnie' to na pewno taki dobry pomysł - przynajmniej w kontekście aplikacji webowych. Krytycznie spojrzymy na pełne spektrum podejść od synchronicznych servletów, po asynchroniczne, reaktywne aplikacje. Posiłkując się liczbami, metrykami, eksperymentami, przeanalizujemy proste i tradycyjne podejście do obsługi HTTP. Zobaczymy gdzie działa, a gdzie przestaje działać. Mając takie nieoptymalne i nieefektywne podejście za punkt wyjściowy - przeanalizujemy inne możliwości (pętla zdarzeń, reaktywność) nie tylko z punktu widzenia wydajności (oczywista perspektywa), ale także czytelności, utrzymywalności itp. Opierając się na typowych scenariuszach użycia, spróbujemy odpowiedzieć na pytanie czy jest punkt od którego nudne, niehipsterskie technologie przestają mieć sens i z czystym sumieniem możemy dodać `import io.reactivex.*`.
Jakub Marchwicki , SegFault confrences / Casumo
Programista od kilkunastu lat, architekt od kilku, analityk czasami, konsultant jak trzeba, manager z wyboru, trener z zamiłowania, wannabe entrepreneur z marzeń, lider Java User Group w Gdańsku. Jest spora szansa, że nic z tego nie robię dobrze, ale próbuje... i wyciąga wnioski z porażek. Złośliwi mówią, że nie umie programować, ale miewa niezłe pomysły.
Systemy rozproszone od ostatnich lat znów zyskują na popularności, a wszechobecne narzędzia związane z szeroko pojętą infrastrukturą, wdrożeniem czy orkiestracją usług pojawiają się niczym grzyby po deszczu. Z czym jednak musi się zmierzyć programista, aby stworzyć swój własny mikroserwis, a następnie zintegrować go z pozostałymi aplikacjami? Czy ekosystem platformy .NET Core jest wystarczająco przyjazny i bogaty w biblioteki wspomagające rozwój takiej architektury? Na te oraz inne pytania poszukamy odpowiedzi w trakcie prezentacji.
Piotr Gankiewicz Software Engineer, Nethermind.io
Microsoft MVP, trener Bottega IT Minds, a na co dzień inżynier oprogramowania rozwijający klienta sieci Ethereum Blockchain w Nethermind. Zwolennik Domain Driven Design, CQRS oraz systemów rozproszonych. Kontrybutor open source i prelegent na konferencjach branżowych. Współtwórca platformy DevMentors.io.
Systemy rozproszone od ostatnich lat znów zyskują na popularności, a wszechobecne narzędzia związane z szeroko pojętą infrastrukturą, wdrożeniem czy orkiestracją usług pojawiają się niczym grzyby po deszczu. Z czym jednak musi się zmierzyć programista, aby stworzyć swój własny mikroserwis, a następnie zintegrować go z pozostałymi aplikacjami? Czy ekosystem platformy .NET Core jest wystarczająco przyjazny i bogaty w biblioteki wspomagające rozwój takiej architektury? Na te oraz inne pytania poszukamy odpowiedzi w trakcie prezentacji.
Dariusz Pawlukiewicz Full-Stack Developer, Connectis_
Absolwent wydziału Cybernetyki na Wojskowej Akademii Technicznej. Microsoft MVP. Miłośnik języka C# oraz platformy .NET Core. Entuzjasta DDD, CQRS oraz wszelkich zagadnień związanych z systemami rozproszonymi. Regularnie prowadzi bloga foreverframe.net, a okazjonalnie pojawia się na spotkaniach oraz konferencjach programistycznych w roli prelegenta. Współtwórca platformy DevMentors.io.
W ciągu ostatnich lat jesteśmy świadkami zywiołowego rozwóju technik związanych ze Sztuczną Inteligencją, a zwłaszcza z Machine Learning (ML). W prezentacji przedstawione zostaną korzyści, uwarunkowania, ograniczenia oraz perspektywy ML na urządzeniach o ograniczonych zasobach (typu Embedded), a także trendy rozwoju oraz techniki przezwyciężania tych ograniczeń, pozwalające na nowe i rewolucyjne zastosowania Sztucznej Inteligencji w codziennym życiu.
Przemysław Krokosz Architekt Rozwiązań Technicznych, Mobica
Absolwent Wydziału Elektroniki i Technik Informacyjnych na Politechnice Warszawskiej, obecnie Architekt Rozwiązań Technicznych dla sektora Silicon and Strategic w firmie Mobica Limited Sp. z o. o. Oddział w Polsce. Prawie od samego startu swojej 25-letniej kariery zawodowej jest związany z firmami konsultingowymi rynku IT – początkowo z szwedzką firmą Sigma Poland, później z firmami Teleca Poland, AU Systems oraz Cybercom Poland. Zaczynał jako konsultant - deweloper, wspierający swoją pracą zespoły projektowe dużych firm IT – głównie telecomowych, zlokalizowanych m. in. w Szwecji, Norwegii oraz Włoszech; później stopniowo przejmował zadania związane z team leadingiem oraz project managementem, zwłaszcza w obszarze technologii mobilnych. Ostatecznie skoncentrował się na technicznym wsparciu sprzedaży, m. in. przygotowując oferty techniczne dla klientów, konsultując z nimi zakres, założenia i zależności dla przyszłych projektów, nadzorując miedzy innymi wykonanie studiów wykonalności. W swojej karierze pełnił w firmach wiele różnych formalnych funkcji, był m. in. Site Managerem i CTO w Telece Poland
With containers getting more and more popularity many companies are facing a challenge of how to refactor their application into Cloud Native workloads. In this session we will have a look at how Google wants to solve this problem. Anthos Migrate (former Velostarata) allows to not only migrate your virtual machines to GCP but also to containerize your legacy infrastructure. Join us in the session to see how it can help you to modernize your applications. Gentlemen will represent Atos and conduct the presentation for the second time.
Krzysztof Hermanowski Lead Developer, ATOS
Krzysztof is a Lead Developer in the Cloud Engineering team of Atos. He has 15 years of experience in IT and 11 years working for enterprise customers. He holds multiple certifications in AWS, VMware, Google Cloud and Microsoft technologies. Krzysztof finished Executive MBA in IT studies based on Leeds University programme and is one of the only 3 polish VCDXs. He is a cloud enthusiast focusing on deployment automation and containerization. He was an architect in the team that developed three very successful private cloud products of Atos.
With containers getting more and more popularity many companies are facing a challenge of how to refactor their application into Cloud Native workloads. In this session we will have a look at how Google wants to solve this problem. Anthos Migrate (former Velostarata) allows to not only migrate your virtual machines to GCP but also to containerize your legacy infrastructure. Join us in the session to see how it can help you to modernize your applications. Gentlemen will represent Atos and conduct the presentation for the second time.
Konrad Clapa Lead Cloud Automation Architect, ATOS
Konrad Clapa is a Lead Cloud Automation Architect working for Atos R&D. He has over 10 years of experience in the IT industry. He holds over 30 IT certifications including all 3 Google Cloud Platform Certifications. He is also listed among around 30 individuals holding the double VMware Certified Design Expert certifications. Sharing knowledge has been a key value for him so he contributes to the community being a leader for local Google Cloud Developer Group and AWS User Group in Poland.
Jesteś zmęczony zwracaniem kodów błędów i ich manualną propagacją? Prawdopodobnie próbowałeś użyć wyjątków, ale okazały się nieefektywne? Przyjrzyjmy się zatem mechanizmom dostępnym dziś w C++ oraz jakich mechanizmów możemy spodziewać się w tym języku w przyszłości.
Dawid Pilarski Senior Software Developer, TomTom
Dawid Pilarski ukończył Automatykę i Robotykę na politechnice Łódzkiej, chociaż od początku pasjonował się językiem C++. Obecnie jest starszym programistą w TomTom'ie. W wolnej chwili pisze bloga o C++ i prowadzi prelekcje na lokalnych meetup'ach. Od 2019 roku bierze udział w procesach standaryzacyjnych języka C++ jako ekspert polskiego ciała narodowego.
We’ve all been there, facing a blinking cursor. You need to build a new feature, but aren’t sure where to start. Or you have to fix something in your app, and you’re unsure why it broke.This situation is common with Big Ball of Mud architectures. This design hinders your release velocity. And it makes it near-impossible to seize new business opportunities. How can you move on from this situation?Most of us also know what good design is. We talk a lot about Domain-Driven Design, modeling, event storming and Test-Driven Development.Here’s the challenge: how to apply this thinking to your current systems. How do we modernize the app? How do convince people we should modernize it? How do we overcome the lack of testing? Or lack of business knowledge?Attend this session to answer these questions and more. You’ll learn about techniques that have proven to work in companies like yours.
Jakub Pilimon Principal Technologist, Pivotal
Jakub is Spring Developer Advocate at Pivotal, blogger, passionate programmer and trainer. He loves to tackle complex enterprises with Domain Driven Design, Test Driven Development and Spring. Being a microservice freak, architecture is his main area of interest too. When he does not program he rides motorbike, skis or grows his beard. Also, here is his DZone MVB awarded blog: pillopl.github.io
Wszędzie są zdarzenia, reagujemy na nie, reagują na nie budowane przez Nas systemy. Jak wykorzystać zdarzenia do odkrywania wiedzy, procesów biznesowych. Czym jest EventStorming? Gdzie można go używać? Jak używać? Co daje nam używanie tej techniki? Czy zawsze potrzebujemy grupy by stosować? Czy warto robić EventStorming samemu? A może zdalnie? Jak to można zrobić w domu? Na te i inne pytania zamierzam odpowiedzieć na mojej prezentacji.
Krzysztof Owsiany Programista, GemuStudio
Jako dzieciak zakochałem się w programowaniu, a było to już ponad ćwierć wieku temu. Od tego czasu miałem wiele różnych związków językowo-technologicznych. Obecnie najmocniej rozwijam się w obszarach .NET w powiązaniu z DDD, Event Storming’iem, Clean Code, TDD. Continuous Development - tak można nazwać pasjonata IT dlatego ciągle się rozwijam i uwielbiam poznawać nowe technologie. Wyszedłem też do ludzi i występuję na różnych Polskich konferencjach meetup-ach, dzieląc się swoją wiedzą z innymi. Wiele wyjazdów na konferencję wyzwoliło we mnie chęć nagrywania podcastu After.conf. Nieco wcześniej powstał mój blog MrDev.pl. Poprowadziłem też kilkukrotnie devWarsztaty, co było bardzo pouczającym doświadczeniem.
W czasie gorącego lata trwały intensywne prace nad nową odsłoną języka Java. Wrzesień jest miesiącem oficjalnego wydania Java 13. Jesteście przesądni...? W nowej wersji mamy ważne poprawki związane z zarządzaniem pamięcią oraz reimplementacją Legacy Socket API. W formie zapowiedzi dostajemy ulepszenia dotyczące wyrażeń przełączających - switch oraz bloków tekstów. Podczas panelu przyjrzymy się bliżej tym nowościom.
Tomek Popis , Altkom Akademia
Programista z ponad 16-letnim doświadczeniem w produkcji systemów rozproszonych w technologii Java. Pracuje w architekturze mikroserwisowej opartej o technologie Docker, Mesos, Kubernetes, Java, Go, Spring Cloud, Node.js. Ma duże doświadczenie w wytwarzaniu aplikacji mobilnych na platformę iOS oraz Android. Jako instruktor prowadzi zajęcia z wielu dziedzin inżynierii oprogramowania oraz zwinnych metodyk pracy w projekcie.
C++ w wielu kręgach traktowany jest jako język zbyt ciężki do zastosowań embedded. W ramach prezentacji chcemy pokazać coś zupełnie innego, że współczesne kompilatory radzą sobie świetnie z wymaganiami świata embedded, a sama ewolucja języka i jego podstawowych bibliotek sprawia, że błędy coraz mnie spędzają sen z powiek. Może daleko jeszcze do GoLang, ale zdecydowanie trudniej strzelić sobie w stopę.
Kamil Kowalski ,
Pracowałem w Intelu przy projektach serwerowych, zaczynając od NodeManagera, a kończąc na OpenBMC. Jestem entuzjastą C++, rozwiązań embedded oraz Arduino. Poza pracą nie przestaję być programistą - rozwijam swój projekt SmartHome, dodaję automatyzację kolejnych rzeczy w moim własnym domu - od świateł, po rolety, drzwi itp., a także zażywam inhalacji ołowiowych podczas pracy z lutownicą :-)
C++ w wielu kręgach traktowany jest jako język zbyt ciężki do zastosowań embedded. W ramach prezentacji chcemy pokazać coś zupełnie innego, że współczesne kompilatory radzą sobie świetnie z wymaganiami świata embedded, a sama ewolucja języka i jego podstawowych bibliotek sprawia, że błędy coraz mnie spędzają sen z powiek. Może daleko jeszcze do GoLang, ale zdecydowanie trudniej strzelić sobie w stopę.
Paweł Rapkiewicz Software Engineer/Technical Lead, Intel
Przygodę z komercyjnym oprogramowaniem zaczął w Lucent Technologies, gdzie zdobywał pierwsze szlify. Następnie wiedzę i doświadczenie poszerzał pracując nad systemami czasu rzeczywistego w Intelu, rozwijając kolejne generacje FW platform serwerowych. Od trzech lat mocno zaangażowany w rozwój otwartego programowania do zarządzania serwerami, jeden z leaderów rozwoju OpenBMC w Intelu, ewangelizator tegoż i C++ do zastosowań wszelakich. Pasjonat OpenSource, C++ i szeroko rozumianego SmartHome.
Prezentacja przedstawi przykład użycia technologii open-source w układach embedded – OpenBMC. Przekrojowo opisze jakie korzyści przynosi open source oraz jego główne ograniczenia. W jej ramach zaprezentowane będą charakter i rola BMC we współczesnych serwerowniach oraz geneza projektu. OpenBMC jako projekt oparty o bogaty stos oprogramowania open source jest świetnym przykładem architektury kompletnego systemu wysokiego poziomu i może służyć jako inspiracja bądź baza gotowych rozwiązań software-owych. Zostanie zaprezentowana przekrojowa architektura systemu (m. in. U-Boot bootloader, Yocto Linux) oraz funkcje poszczególnych jego elementów. Prelegenci zaznajomią odbiorcę z kanałami komunikacji ze światem zewnętrznym (Redfish) oraz wewnątrz systemu (D-Bus) i ich zastosowaniem w architekturze mikroserwisowej.
Adrian Ambrożewicz Software Engineer, Intel
Na co dzień pracuję nad oprogramowaniem służącym do zarządzania platformami serwerowymi w Data Center. Moje główne obszary zainteresowań to architektura systemów oraz zastosowanie nowoczesnych rozwiązań w świecie embedded. Technologie mi bliskie to Linux, C/C++, Python. Przyznam jednak, że największa technologiczną miłością jest Lightroom, a to ze względu na moje hobby, któremu oddaję się poza pracą – fotografii.
Prezentacja przedstawi przykład użycia technologii open-source w układach embedded – OpenBMC. Przekrojowo opisze jakie korzyści przynosi open source oraz jego główne ograniczenia. W jej ramach zaprezentowane będą charakter i rola BMC we współczesnych serwerowniach oraz geneza projektu. OpenBMC jako projekt oparty o bogaty stos oprogramowania open source jest świetnym przykładem architektury kompletnego systemu wysokiego poziomu i może służyć jako inspiracja bądź baza gotowych rozwiązań software-owych. Zostanie zaprezentowana przekrojowa architektura systemu (m. in. U-Boot bootloader, Yocto Linux) oraz funkcje poszczególnych jego elementów. Prelegenci zaznajomią odbiorcę z kanałami komunikacji ze światem zewnętrznym (Redfish) oraz wewnątrz systemu (D-Bus) i ich zastosowaniem w architekturze mikroserwisowej.
Wiktor Gołgowski Software Engineer, Intel
Z wykształcenia elektryk, hobbystycznie student informatyki. W branży embedded od 2013 roku. Obecnie zaangażowany w tworzenie firmware na potrzeby serwerowni, wcześniej oprogramowania do odbioru telewizji cyfrowej. DevOps z przekonania, administrator z konieczności, okazjonalnie Scrum Master. Programuje czasem w C, C++ i Pythonie. Orędownik automatyzacji i skryptów shellowych. Po pracy trenuje tai chi.
Wprowadzenie to technik profilowania i śledzenia systemu Embedded Linux ze szczególnym naciskiem na jądro i to, co się w nim dzieje. Na zestawie deweloperskim z procesorem ARM i działającym na nim kodzie prostego sterownika komunikacyjnego, pokażę praktyczne zastosowanie narzędzi takich jak perf, ltt-ng oraz BPF. Zaprezentuję jak użyć ich do mierzenia wydajności oraz źródeł opóźnień w obsłudze przerwań i innych zdarzeń w systemie oraz jak wizualizować i interpretować wyniki ich działania.
- jak działają przerwania?
- co robi procesor jak nic nie robi?
- gdzie zaginął mój pakiet sieciowy?
- dlaczego mój program się zacina?
Marcin Bis ,
Zajmuję się Linuksem w systemach wbudowanych od 2007 roku. Pracuję przy małych i dużych projektach bazujących na systemie Linux i rozwiązaniach sieciowych oraz real-time: urządzeniach medycznych, multimedialnych, przemysłowych IoT i sieciowych. Konfiguruję, programuję, kompiluję, mierzę, badam i optymalizuję systemy embedded. Na bazie praktycznej wiedzy z moich projektów - piszę książki i prowadzę szkolenia. Obecnie zajmuję się robotami do zastosowań specjalnych.